/**
 * @file	  单通道输入捕获(输入捕获)
 * @brief	  利用定时器输入捕获模式采频
 * @note	  基于正点原子Mini开发版，仅供学习参考
 * @author	  YYJ
 * @email	  2779314051@qq.com
 * @data	  2020/12/20
 */
#include "stm32f10x.h"
#include "tim_get.h"
#include "lcd.h"
#include "delay.h" 

int main(void)
{	
	int hz=0;
	
	delay_init();
	LCD_Init();
	POINT_COLOR=RED;
	LCD_ShowNum(30,30,123,3,16);
	TIM2_Capture_Init(0xffff,0);
	while(1)
	{
		if(TIM2_flag&0x8000)
		{
			LCD_ShowNum(30,50,TIM2_capture,5,16);//显示从定时器读取的值，因为没算溢出，对于低频显示不全
			hz = TIM2_capture + (TIM2_flag&0x3fff)*65535;//加上溢出，总共的计数次数
			//注：采集有个固定误差，在此定时器分频系数下，误差在110个时钟周期调动，猜想为进中断所产生的时间误差
			hz = (int)(72000000.0/hz);//根据定时器每次的计数的时间来换算频率
			LCD_ShowNum(30,70,hz,6,16);//展示频率
			TIM2_flag = 0;
		}
		delay_ms(200);//为了好看数据为延时
	}
}

